{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "03fdb34a-6df1-4b9f-a3de-8a8267cb8367",
   "metadata": {
    "tags": []
   },
   "source": "# cqlib tutorial"
  },
  {
   "cell_type": "markdown",
   "id": "e550a33f-ad76-491e-8883-bc7d80165faa",
   "metadata": {
    "tags": []
   },
   "source": "## 1. 量子计算机操作基础"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "目前支持两种平台进行量子计算机操作：\n",
    "\n",
    "- GuoDunPlatform  \n",
    "    国盾量子计算云平台，官网地址：https://quantumctek-cloud.com/  \n",
    "    \n",
    "- TianYanPlatform  \n",
    "    中电信天衍量子计算云平台，官网地址：https://qc.zdxlz.com"
   ],
   "id": "f69259240d34b1e6"
  },
  {
   "cell_type": "markdown",
   "id": "5fdb9d8d",
   "metadata": {},
   "source": [
    "在使用前，请先在对应的平台注册账号，并获取对应的密钥。\n",
    "\n",
    "在开始此教程前，请确保已经成功安装cqlib package。如果未安装，请运行一下命令: "
   ]
  },
  {
   "cell_type": "code",
   "id": "8c9a74f3",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T00:58:59.128740Z",
     "start_time": "2024-08-09T00:58:59.124132Z"
    }
   },
   "source": "!pip install cqlib -i https://pypi.tuna.tsinghua.edu.cn/simple",
   "outputs": [],
   "execution_count": null
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "",
   "id": "2b21d88ddb9186dd"
  },
  {
   "cell_type": "markdown",
   "id": "84e08740",
   "metadata": {},
   "source": [
    "设置登录信息，选择量子计算机或仿真器。\n",
    "\n",
    "量子计算机包括已经上线的天衍-176和即将上线的天衍-504。天衍-176性能卓越，具有66个量子比特，110个纠缠比特，平均相干时间T1为34.2微秒，T2为3.09微秒。其读出错误率为5.98%，单比特门错误率为0.18%，双比特门错误率为1.92%。"
   ]
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "在量子电路模拟中，选择合适的模拟后端至关重要。不同量子电路模拟器适用于以下场景：\n",
    "\n",
    "- **全振幅量子仿真机**：能够同时模拟并存储量子态的所有振幅，适合精确模拟小规模量子系统。\n",
    "\n",
    "- **单振幅量子仿真机**：能高效模拟大规模量子比特电路，计算性能不随比特数增加呈指数增长，但随电路深度增加性能急剧下降，且难以处理多控制门。适用于**高比特、低深度**电路的快速仿真，常用于获取单个量子态的振幅。\n",
    "\n",
    "- **张量网络量子仿真机**：与单振幅类似，能够高效处理多控制门，且在**深度较高**的电路模拟中性能更优，适合模拟复杂电路。\n",
    "\n",
    "- **稳定子仿真机**：利用稳定子方法高效模拟量子纠错和少量纠缠的系统，适合大规模稳定子态的仿真。\n",
    "\n",
    "- **带噪声量子仿真机**：模拟真实量子计算机中因物理特性导致的计算误差，适用于研究量子噪声环境下的量子计算行为。\n"
   ],
   "id": "e3c7fd860dcb05ac"
  },
  {
   "cell_type": "code",
   "id": "25573265-a8bb-467a-a503-96e5dbd2ccd5",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-10-10T02:58:57.787835Z",
     "start_time": "2024-10-10T02:58:57.536684Z"
    }
   },
   "source": [
    "from cqlib import TianYanPlatform  # 导出量子计算机SDK的支持包\n",
    "\n",
    "login_key = \"your_login_key\"\n",
    "\n",
    "# 使用 TianYanPlatform 类来创建一个平台实例，并设置你的 SDK 密钥和选择的量子计算机。\n",
    "# 用户使用时，请务必用自己的密钥更新上述内容，否则上述密钥会被定时更新而示例程序不可以。\n",
    "platform = TianYanPlatform(login_key=login_key)\n",
    "\n",
    "# 查询和选择量子计算机, 可用于后期解析量子计算机工作状态。而调用量子计算机的名称，可在网页中查看。\n",
    "computer_list_data = platform.query_quantum_computer_list()\n",
    "for computer_data in computer_list_data:\n",
    "    print(computer_data)\n",
    "\n",
    "# 此为示例，实际使用时请选择正确的量子计算机，或者仿真器。\n",
    "platform.set_machine(\"tianyan176\")"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['3', 'free', 'running', 'tianyan_sw']\n",
      "['4', 'free', 'running', 'tianyan_s']\n",
      "['7', 'free', 'running', 'tianyan_tn']\n",
      "['8', 'free', 'running', 'tianyan_tnn']\n",
      "['9', 'free', 'running', 'tianyan_sa']\n",
      "['1764555284795101186', 'free', 'running', 'tianyan176']\n"
     ]
    }
   ],
   "execution_count": 2
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "其中 tianyan_sw 为 全振幅量子仿真机，tianyan_sa 为单振幅量子仿真机，tianyan_s 为稳定子仿真机，tianyan_tn 为张量网络量子仿真机，tianyan_tnn 为带噪声量子仿真机。\n",
   "id": "1b13cc10e9dfc449"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "也可以在创建实例时直接指定量子计算机，下面的指令与上述等价"
   ],
   "id": "37682d73ebad8c49"
  },
  {
   "cell_type": "code",
   "id": "5cab395d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:53.831277Z",
     "start_time": "2024-08-09T06:54:53.716758Z"
    }
   },
   "source": "platform = TianYanPlatform(login_key=login_key, machine_name=\"tianyan176\")",
   "outputs": [],
   "execution_count": 4
  },
  {
   "cell_type": "markdown",
   "id": "b7de27c7",
   "metadata": {},
   "source": "## 2.编写量子线路"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "### 2.1 量子门",
   "id": "30f271a1c6089649"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "Cqlib 支持的量子门种类丰富，包括许多单量子比特门和多量子比特门\n",
    "\n",
    "- 单量子比特门:\n",
    "\n",
    "    - Hadamard 门: H\n",
    "    - Pauli 门: X, Y, Z\n",
    "    - 旋转门: RX, RY, RZ\n",
    "    - 根 Pauli 门: X2P, X2M, Y2P, Y2M\n",
    "    - 相位门: S, SD, T, TD\n",
    "\n",
    "- 多量子比特门:\n",
    "    - 受控门: CX, CCX, CRX, CRY, CRZ, CZ\n",
    "    - 交换门: SWAP\n",
    "    - XY 门: XY, XY2P, XY2M\n",
    "\n",
    "这些门是构建量子电路的基础，可以组合使用来执行复杂的量子计算任务。"
   ],
   "id": "a0ab4137f6f55fb2"
  },
  {
   "cell_type": "markdown",
   "id": "b2cd4b47",
   "metadata": {},
   "source": "### 2.2 量子程序的编写"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "下面介绍第一个量子程序：Bell 态制备。  \n",
    "贝尔态是量子力学中的一种重要纠缠态，涉及两个量子比特。贝尔态在量子信息和量子计算中具有重要的应用。  \n",
    "贝尔态的制备过程是：用了量子门操作（Hadamard门和CZ门）来生成一个 Bell 态，并对量子比特进行测量（M）。"
   ],
   "id": "3fd43755f7d0ec7a"
  },
  {
   "cell_type": "code",
   "id": "deae6990-20ee-4aca-8e9b-2d836d5fa402",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:53.855141Z",
     "start_time": "2024-08-09T06:54:53.835419Z"
    }
   },
   "source": [
    "from cqlib.circuits import Circuit, Parameter\n",
    "\n",
    "circuit = Circuit(qubits=[0, 1])\n",
    "\n",
    "circuit.h(0)\n",
    "circuit.x(1)\n",
    "# cx门被分解过h和cz门\n",
    "circuit.h(1)\n",
    "circuit.cz(0, 1)\n",
    "circuit.h(1)\n",
    "circuit.measure_all()\n",
    "\n",
    "print(circuit.qcis)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "H Q0\n",
      "X Q6\n",
      "H Q6\n",
      "CZ Q0 Q6\n",
      "H Q6\n",
      "M Q0\n",
      "M Q6\n"
     ]
    }
   ],
   "execution_count": 5
  },
  {
   "cell_type": "markdown",
   "id": "b1882b73",
   "metadata": {},
   "source": [
    "参数化量子线路是一种在量子计算中常用的技术，允许在量子电路中引入参数以增加灵活性和可调节性。这在量子机器学习、优化算法和量子化学等领域中非常有用。"
   ]
  },
  {
   "cell_type": "code",
   "id": "0aa92f30",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:54.011339Z",
     "start_time": "2024-08-09T06:54:53.995067Z"
    }
   },
   "source": [
    "theta = Parameter('theta')\n",
    "circuit_para = Circuit(qubits=[0], parameters=[theta])\n",
    "circuit_para.rx(0, theta)\n",
    "print(f\"带参数的线路: {circuit_para.qcis}\")\n",
    "\n",
    "circuit_para.set_parameter_value({'theta': 0.12})\n",
    "print(f\"赋值后的线路: {circuit_para.qcis}\")"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "带参数的线路: RX Q0 theta\n",
      "赋值后的线路: RX Q0 0.12\n"
     ]
    }
   ],
   "execution_count": 6
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "量子计算的参数支持，基础的加减乘除运算。",
   "id": "f57b3f7fb69bea2b"
  },
  {
   "cell_type": "code",
   "id": "a133b689",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:54.157296Z",
     "start_time": "2024-08-09T06:54:54.078516Z"
    }
   },
   "source": [
    "from cqlib.circuits import Circuit, Parameter\n",
    "\n",
    "theta = Parameter('theta')\n",
    "phi = Parameter('phi')\n",
    "\n",
    "print(f'theta: {theta}')\n",
    "print(f'phi: {phi}')\n",
    "print(f\"theta + phi: {theta + phi}\")\n",
    "print(f\"theta - phi: {theta - phi}\")\n",
    "print(f\"theta * phi: {theta * phi}\")\n",
    "print(f\"theta / phi: {theta / phi}\")\n",
    "\n",
    "# 组合运算\n",
    "print(f\"theta * phi - phi: {theta * phi - phi}\")"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "theta: theta\n",
      "phi: phi\n",
      "theta + phi: phi + theta\n",
      "theta - phi: -phi + theta\n",
      "theta * phi: phi*theta\n",
      "theta / phi: theta/phi\n",
      "theta * phi - phi: phi*theta - phi\n"
     ]
    }
   ],
   "execution_count": 7
  },
  {
   "cell_type": "markdown",
   "id": "6b8f7ac4",
   "metadata": {},
   "source": "`circuit.qcis` 可以导出 QCIS 线路。`Circuit.load` 可以导入QCIS线路来创建一个量子线路。"
  },
  {
   "cell_type": "code",
   "id": "bb882636",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:54.315994Z",
     "start_time": "2024-08-09T06:54:54.307843Z"
    }
   },
   "source": [
    "qcis = \"\"\"\n",
    "H Q0\n",
    "X Q1\n",
    "H Q1\n",
    "CZ Q0 Q1\n",
    "H Q1\n",
    "M Q0\n",
    "M Q1\n",
    "\"\"\"\n",
    "\n",
    "c1 = Circuit.load(qcis)\n",
    "print(c1)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<cqlib.circuits.circuit.Circuit object at 0x000001A27FF78A60>\n"
     ]
    }
   ],
   "execution_count": 8
  },
  {
   "cell_type": "markdown",
   "id": "902a6bfa-f15e-4102-94c6-2be761c710d1",
   "metadata": {},
   "source": [
    "## 3. 量子计算提交"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6577be07",
   "metadata": {},
   "source": "### 3.1 量子实验集创建"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "量子实验集合可以帮助将相似的实验组织在一起，方便管理和分类。  \n",
    "如不创建实验集合也可以（后期不传递 lab_id 参数即可），快速提交运行的程序将放在默认实验集合内。"
   ],
   "id": "3d402915c9c375e6"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "",
   "id": "292d7b92f933914b"
  },
  {
   "cell_type": "code",
   "id": "d196775f",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:54.570517Z",
     "start_time": "2024-08-09T06:54:54.456018Z"
    }
   },
   "source": [
    "from datetime import datetime\n",
    "# create_lab 方法创建了一个实验集，并返回了该实验集的唯一标识 lab_id\n",
    "lab_id = platform.create_lab(name=f'lab.{datetime.now().strftime(\"%Y%m%d%H%M%S\")}', remark='test_collection')\n",
    "\n",
    "print(lab_id)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1821802319750164482\n"
     ]
    }
   ],
   "execution_count": 9
  },
  {
   "cell_type": "markdown",
   "id": "9a6c848f",
   "metadata": {},
   "source": [
    "### 3.2 量子实验运行提交\n",
    "\n",
    "有两种方式提交量子电路实验\n",
    "+ 先保存实验，再提交运行。\n",
    "+ 直接提交并运行实验。\n",
    "\n",
    "下面分别进行介绍"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c563b38e",
   "metadata": {},
   "source": "#### 3.2.1 保存实验，再提交"
  },
  {
   "cell_type": "markdown",
   "id": "92d086c6",
   "metadata": {},
   "source": [
    "在量子计算中，通常先定义一个量子电路（如之前定义的 circuit.qcis），然后将它保存为一个实验，并提交运行。这里使用了 save_experiment 方法保存实验，然后使用 run_experiment 方法提交运行，并指定运行的次数（5000次）。  \n",
    "该方式的优势是存储一个线路，可以多次运行，而不用从新创建实验。"
   ]
  },
  {
   "cell_type": "code",
   "id": "a3282551",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:54.788885Z",
     "start_time": "2024-08-09T06:54:54.573236Z"
    }
   },
   "source": [
    "exp_id = platform.save_experiment(lab_id=lab_id, circuit=circuit.qcis, name=f'exp.{datetime.now().strftime(\"%Y%m%d%H%M%S\")}')\n",
    "query_id_single = platform.run_experiment(exp_id=exp_id, num_shots=5000)\n",
    "print(f'query_id: {query_id_single}')"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "query_id: 1821802320664522754\n"
     ]
    }
   ],
   "execution_count": 10
  },
  {
   "cell_type": "markdown",
   "id": "f9572ff7",
   "metadata": {},
   "source": [
    "exp_id 是保存的实验的唯一标识，query_id_single 是提交运行后返回的查询标识，可以用于后续的状态查询。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e566ab2b",
   "metadata": {},
   "source": "#### 3.2.2 直接提交并运行实验"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "如果不需要先保存实验，也可以直接提交并运行实验。使用 submit_experiment 方法可以一步到位，将量子电路直接提交到指定的实验集中并运行。",
   "id": "b3dd93cee83b8ef2"
  },
  {
   "cell_type": "code",
   "id": "63036982",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:54.951481Z",
     "start_time": "2024-08-09T06:54:54.788885Z"
    }
   },
   "source": [
    "query_id_single = platform.submit_job(\n",
    "    circuit=circuit.qcis,\n",
    "    exp_name=f'exp.{datetime.now().strftime(\"%Y%m%d%H%M%S\")}',\n",
    "    lab_id=lab_id,\n",
    "    num_shots=5000,\n",
    "    )\n",
    "print(f'query_id: {query_id_single}')"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "query_id: ['1821802321335611393']\n"
     ]
    }
   ],
   "execution_count": 11
  },
  {
   "cell_type": "markdown",
   "id": "917e7d3f",
   "metadata": {},
   "source": "#### 3.2.3 批量提交并运行实验"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "如果有多个量子电路需要运行，可以将它们作为列表传递给 submit_experiment 方法，以批量方式提交并运行。 该批量提交实验，主要针对用户线路基本相同，尤其是测量比特相同，只有具备带入参数不同的情况下可以进行。",
   "id": "1d73434ed58252c4"
  },
  {
   "cell_type": "code",
   "id": "903d1864",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:54:55.868168Z",
     "start_time": "2024-08-09T06:54:54.951481Z"
    }
   },
   "source": [
    "circuit_list = [circuit.qcis] * 10 \n",
    "#用户个根据实际需求，重组该列表，但要注意测量比特及测量顺序必须相同。\n",
    "#关于批量运行实验的其他限制，详见函数说明。\n",
    "from cqlib import QuantumLanguage\n",
    "query_id_list = platform.submit_experiment(\n",
    "    circuit=circuit_list,\n",
    "    language=QuantumLanguage.QCIS,\n",
    "    lab_id=lab_id,\n",
    "    num_shots=5000,\n",
    ")\n",
    "print(f'提交多个电路query_id: {query_id_list}')"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "提交多个电路query_id: ['1821802322027671554', '1821802322405158914', '1821802322715537410', '1821802323055276034', '1821802323428569089', '1821802323747336193', '1821802324091269121', '1821802324565225474', '1821802324871409665', '1821802325152428034']\n"
     ]
    }
   ],
   "execution_count": 12
  },
  {
   "cell_type": "markdown",
   "id": "24be9409-2dcf-4a76-b5f3-81fdef90d0bd",
   "metadata": {
    "tags": []
   },
   "source": [
    "## 4. 查询实验结果及处理\n",
    "\n",
    "### 4.1 查询原始数据"
   ]
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "一旦实验提交完成并且量子计算平台处理完毕，你可以使用返回的 query_id_list 查询每个实验的结果。下面是一个示例代码，用于查询单个实验的结果：",
   "id": "516854b81b3c3b7c"
  },
  {
   "cell_type": "code",
   "id": "d6f32702-0246-4da4-bf89-8e28d6fb9bd0",
   "metadata": {
    "tags": [],
    "ExecuteTime": {
     "end_time": "2024-08-09T06:56:52.834196Z",
     "start_time": "2024-08-09T06:54:55.868168Z"
    }
   },
   "source": [
    "exp_result = platform.query_experiment(query_id=query_id_single, max_wait_time=120, sleep_time=5)\n",
    "#返回值为list，包含若干字典形式，\n",
    "    #key：\"resultStatus\"为线路执行的原始数据，共计1+num_shots个数据，第一个数据为测量的比特编号和顺序，如本例中[0, 6]，其余为每shot对应的结果，每shot结果按照比特顺序排列。\n",
    "    #key：\"probability\"为线路测量结果的概率统计，经过实时的读取修正后的统计结果。\n",
    "    #key：\"experimentTaskId\"为本次实验的查询id，主要用于批量实验时的结果对应确认。\n",
    "    #当测量比特大于15个时，结果统计对服务器要求较高，传递数据率也较大，故\"probability\"返回为空，请用户根据原始数据，配合当时量子计算机的读出保真度自行做修正。相关修正函数在高阶教程中有示例。用户也可以自己完善修正函数。\n",
    "\n",
    "for res_name, res_data in exp_result[0].items():\n",
    "    print(f\"{res_name} : {res_data}\")"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "resultStatus : [[0, 6], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 0], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 0], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 1], [0, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [1, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 0], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 1], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [0, 1], [1, 1], [0, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1]]\n",
      "probability : None\n",
      "experimentTaskId : 1821802321335611393\n"
     ]
    }
   ],
   "execution_count": 13
  },
  {
   "cell_type": "markdown",
   "id": "96c8dcfb",
   "metadata": {},
   "source": [
    "\n",
    "对于多个提交的量子电路，或者单个量子电路测量比特大于等于15个量子比特时，云平台只会返回原始测量结果。\n",
    "\n",
    "同样也可以批量查询量子电路结果。"
   ]
  },
  {
   "cell_type": "code",
   "id": "b2b50012",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:57:08.666798Z",
     "start_time": "2024-08-09T06:56:52.838278Z"
    }
   },
   "source": [
    "exp_result = platform.query_experiment(query_id=query_id_list, max_wait_time=120, sleep_time=5)\n",
    "print(f'输入的查询Id个数为: {len(query_id_list)}，查询到的实验结果个数为: {len(exp_result)}')\n",
    "print('第一个量子电路实验结果为：')\n",
    "for res_name, res_data in exp_result[0].items():\n",
    "    print(f\"{res_name} : {res_data}\")"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入的查询Id个数为: 10，查询到的实验结果个数为: 10\n",
      "第一个量子电路实验结果为：\n",
      "resultStatus : [[0, 6], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [0, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 0], [1, 1], [1, 1], [1, 1], [0, 0], [1, 1], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0]]\n",
      "probability : None\n",
      "experimentTaskId : 1821802322027671554\n"
     ]
    }
   ],
   "execution_count": 14
  },
  {
   "cell_type": "markdown",
   "id": "d524974c",
   "metadata": {},
   "source": "### 4.2 实验结果统计"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "对于云平台未返回统计结果的实验，需要手动对实验结果进行统计。需要使用util模块下的 LaboratoryUtils 类\n",
    "其中：\n",
    "readout_data_to_state_probabilities_whole 方法会统计全部可能的空间，输出概率为0的空间组合。\n",
    "readout_data_to_state_probabilities_part 仅输出概率超过0的结果，有利于节省内存。"
   ],
   "id": "b7e3ef44014b9669"
  },
  {
   "cell_type": "code",
   "id": "fc99a80b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:57:08.779262Z",
     "start_time": "2024-08-09T06:57:08.666798Z"
    }
   },
   "source": [
    "from cqlib.utils import LaboratoryUtils\n",
    "\n",
    "lu = LaboratoryUtils()\n",
    "#将结果的全部空间进行统计\n",
    "probability_whole=lu.readout_data_to_state_probabilities_whole(result=exp_result[0])\n",
    "print(f'结果的全部空间统计: {probability_whole}')\n",
    "\n",
    "#只对已有结果进行统计，概率为0的结果将不出现。\n",
    "probability_part=lu.readout_data_to_state_probabilities_part(result=exp_result[0])\n",
    "print(f'结果的部分空间统计: {probability_part}')"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "结果的全部空间统计: {'00': 0.0594, '01': 0.4536, '10': 0.3342, '11': 0.1528}\n",
      "结果的部分空间统计: {'01': 0.4536, '10': 0.3342, '11': 0.1528, '00': 0.0594}\n"
     ]
    }
   ],
   "execution_count": 15
  },
  {
   "cell_type": "markdown",
   "id": "4218f8cf",
   "metadata": {},
   "source": "### 4.3 读取修正和归一化处理(仿真器不需要)"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "可以根据读取到的实验结果进行概率校准和概率修正。",
   "id": "6a1cc2de17077c93"
  },
  {
   "cell_type": "code",
   "id": "9720f893",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:57:08.924394Z",
     "start_time": "2024-08-09T06:57:08.780412Z"
    }
   },
   "source": [
    "single_circuit_result = exp_result[0]\n",
    "calibration_result = lu.probability_calibration(result=exp_result[0], laboratory=platform)\n",
    "\n",
    "\n",
    "corrected_result = lu.probability_correction(probabilities=calibration_result)\n",
    "print(f'修正后的概率结果为: {corrected_result}')"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "修正后的概率结果为: {'00': 0.0, '01': 0.48719023271554024, '10': 0.3371942173836346, '11': 0.17561554990082512}\n"
     ]
    }
   ],
   "execution_count": 16
  },
  {
   "cell_type": "markdown",
   "id": "28f302bf-02e6-41fe-921a-a3769efde6cc",
   "metadata": {},
   "source": "### 4.4 量子计算机信息保存(仿真器不需要)"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "如果需要保存此时量子计算的参数作为后期参考,可以运行以下指令：",
   "id": "d4bcf010bdbac167"
  },
  {
   "cell_type": "code",
   "id": "742b335f-a4ee-477e-addd-19c76c8094f4",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:57:09.021668Z",
     "start_time": "2024-08-09T06:57:08.924394Z"
    }
   },
   "source": [
    "config_save = platform.download_config()\n",
    "for key, value in config_save.items():\n",
    "    print(key, value)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "calibrationTime 2024-08-08 21:31:50\n",
      "computerId QubitPrime\n",
      "disabledCouplers G10,G103,G29,G38,G19,G5,G42,G28,G64,G32,G75,G76,G53,G25,G54,G21,G86,G31,G40,G30,G65,G104,G20,G87\n",
      "disabledQubits Q47,Q35,Q5\n",
      "overview {'name': '', 'type': '', 'qubits': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q35', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q47', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'couplers': ['G0', 'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9', 'G10', 'G11', 'G12', 'G13', 'G14', 'G15', 'G16', 'G17', 'G18', 'G19', 'G20', 'G21', 'G22', 'G23', 'G24', 'G25', 'G26', 'G27', 'G28', 'G29', 'G30', 'G31', 'G32', 'G33', 'G34', 'G35', 'G36', 'G37', 'G38', 'G39', 'G40', 'G41', 'G42', 'G43', 'G44', 'G45', 'G46', 'G47', 'G48', 'G49', 'G50', 'G51', 'G52', 'G53', 'G54', 'G55', 'G56', 'G57', 'G58', 'G59', 'G60', 'G61', 'G62', 'G63', 'G64', 'G65', 'G66', 'G67', 'G68', 'G69', 'G70', 'G71', 'G72', 'G73', 'G74', 'G75', 'G76', 'G77', 'G78', 'G79', 'G80', 'G81', 'G82', 'G83', 'G84', 'G85', 'G86', 'G87', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G103', 'G104', 'G105', 'G106', 'G107', 'G108', 'G109'], 'readouts': ['R01', 'R02', 'R03', 'R04', 'R05', 'R06', 'R07', 'R08', 'R09', 'R10', 'R11'], 'coupler_map': {'G0': ['Q6', 'Q0'], 'G1': ['Q7', 'Q0'], 'G2': ['Q7', 'Q1'], 'G3': ['Q8', 'Q1'], 'G4': ['Q8', 'Q2'], 'G5': ['Q9', 'Q2'], 'G6': ['Q9', 'Q3'], 'G7': ['Q10', 'Q3'], 'G8': ['Q10', 'Q4'], 'G9': ['Q11', 'Q4'], 'G10': ['Q11', 'Q5'], 'G11': ['Q12', 'Q6'], 'G12': ['Q12', 'Q7'], 'G13': ['Q13', 'Q7'], 'G14': ['Q13', 'Q8'], 'G15': ['Q14', 'Q8'], 'G16': ['Q14', 'Q9'], 'G17': ['Q15', 'Q9'], 'G18': ['Q15', 'Q10'], 'G19': ['Q16', 'Q10'], 'G20': ['Q16', 'Q11'], 'G21': ['Q17', 'Q11'], 'G22': ['Q18', 'Q12'], 'G23': ['Q19', 'Q12'], 'G24': ['Q19', 'Q13'], 'G25': ['Q20', 'Q13'], 'G26': ['Q20', 'Q14'], 'G27': ['Q21', 'Q14'], 'G28': ['Q21', 'Q15'], 'G29': ['Q22', 'Q15'], 'G30': ['Q22', 'Q16'], 'G31': ['Q23', 'Q16'], 'G32': ['Q23', 'Q17'], 'G33': ['Q24', 'Q18'], 'G34': ['Q24', 'Q19'], 'G35': ['Q25', 'Q19'], 'G36': ['Q25', 'Q20'], 'G37': ['Q26', 'Q20'], 'G38': ['Q26', 'Q21'], 'G39': ['Q27', 'Q21'], 'G40': ['Q27', 'Q22'], 'G41': ['Q28', 'Q22'], 'G42': ['Q28', 'Q23'], 'G43': ['Q29', 'Q23'], 'G44': ['Q30', 'Q24'], 'G45': ['Q31', 'Q24'], 'G46': ['Q31', 'Q25'], 'G47': ['Q32', 'Q25'], 'G48': ['Q32', 'Q26'], 'G49': ['Q33', 'Q26'], 'G50': ['Q33', 'Q27'], 'G51': ['Q34', 'Q27'], 'G52': ['Q34', 'Q28'], 'G53': ['Q35', 'Q28'], 'G54': ['Q35', 'Q29'], 'G55': ['Q36', 'Q30'], 'G56': ['Q36', 'Q31'], 'G57': ['Q37', 'Q31'], 'G58': ['Q37', 'Q32'], 'G59': ['Q38', 'Q32'], 'G60': ['Q38', 'Q33'], 'G61': ['Q39', 'Q33'], 'G62': ['Q39', 'Q34'], 'G63': ['Q40', 'Q34'], 'G64': ['Q40', 'Q35'], 'G65': ['Q41', 'Q35'], 'G66': ['Q42', 'Q36'], 'G67': ['Q43', 'Q36'], 'G68': ['Q43', 'Q37'], 'G69': ['Q44', 'Q37'], 'G70': ['Q44', 'Q38'], 'G71': ['Q45', 'Q38'], 'G72': ['Q45', 'Q39'], 'G73': ['Q46', 'Q39'], 'G74': ['Q46', 'Q40'], 'G75': ['Q47', 'Q40'], 'G76': ['Q47', 'Q41'], 'G77': ['Q48', 'Q42'], 'G78': ['Q48', 'Q43'], 'G79': ['Q49', 'Q43'], 'G80': ['Q49', 'Q44'], 'G81': ['Q50', 'Q44'], 'G82': ['Q50', 'Q45'], 'G83': ['Q51', 'Q45'], 'G84': ['Q51', 'Q46'], 'G85': ['Q52', 'Q46'], 'G86': ['Q52', 'Q47'], 'G87': ['Q53', 'Q47'], 'G88': ['Q54', 'Q48'], 'G89': ['Q55', 'Q48'], 'G90': ['Q55', 'Q49'], 'G91': ['Q56', 'Q49'], 'G92': ['Q56', 'Q50'], 'G93': ['Q57', 'Q50'], 'G94': ['Q57', 'Q51'], 'G95': ['Q58', 'Q51'], 'G96': ['Q58', 'Q52'], 'G97': ['Q59', 'Q52'], 'G98': ['Q59', 'Q53'], 'G99': ['Q60', 'Q54'], 'G100': ['Q60', 'Q55'], 'G101': ['Q61', 'Q55'], 'G102': ['Q61', 'Q56'], 'G103': ['Q62', 'Q56'], 'G104': ['Q62', 'Q57'], 'G105': ['Q63', 'Q57'], 'G106': ['Q63', 'Q58'], 'G107': ['Q64', 'Q58'], 'G108': ['Q64', 'Q59'], 'G109': ['Q65', 'Q59']}, 'qubits_length': 66, 'couplers_length': 110, 'readouts_length': 11, 'T1': 33.88, 'T2': 3.07, 'cz_error': 1.95, '1q_gate_error': 0.63, 'readout_error': 5.8}\n",
      "qubit {'frequency': {'f01': {'param_list': [4.8324, 4.8938, 4.8009, 4.5534, 4.8471, 4.9181, 4.7476, 4.6197, 4.8984, 4.6354, 4.5766, 5.014, 4.7793, 4.7354, 4.8115, 4.7592, 4.6921, 4.7196, 4.8209, 4.8553, 4.929, 4.7923, 4.5555, 4.8881, 4.7144, 4.5223, 4.8424, 4.6854, 4.6491, 4.7262, 4.5657, 4.597, 4.6419, 4.7488, 4.8926, 4.9018, 4.7643, 4.6821, 4.5529, 4.6739, 4.7315, 4.7362, 4.6938, 4.9484, 4.6206, 4.6911, 4.8593, 4.7811, 4.7778, 4.7587, 4.8326, 4.6516, 4.8062, 4.6369, 4.8504, 4.5777, 4.7046, 4.7017, 4.6992, 4.6929, 4.6595, 4.5748, 4.7975], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': 'GHz', 'update_time': '2024-08-07 06:35:59'}}, 'relatime': {'T1': {'param_list': [32.0834, 15.3496, 41.7426, 18.8109, 39.4095, 34.1569, 27.2226, 41.4021, 45.1429, 27.3363, 34.0723, 20.9809, 27.1586, 23.2489, 29.316, 28.044, 32.6449, 42.8331, 34.51, 33.292, 11.1108, 19.7031, 36.9693, 28.1199, 25.7801, 33.3957, 42.7922, 44.52, 46.2545, 47.3339, 39.2116, 34.2867, 45.8843, 11.2483, 36.9933, 20.2838, 26.7274, 53.2455, 42.761, 46.6116, 9.2206, 32.0589, 32.6543, 15.9043, 48.8296, 34.7081, 22.8442, 28.4607, 39.6676, 46.495, 42.8035, 38.1672, 31.5051, 39.0114, 29.9296, 41.2292, 39.4186, 35.1132, 32.0341, 37.5697, 41.0691, 41.8796, 51.9372], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': 'us', 'update_time': '2024-08-07 06:42:30'}, 'T2': {'param_list': [3.2126, 2.6164, 2.8801, 2.0339, 2.8415, 2.1791, 2.9795, 2.1216, 4.5112, 3.7053, 2.533, 3.7859, 2.087, 3.3545, 3.8793, 0.8117, 1.6724, 2.3948, 2.6482, 3.0503, 3.1277, 5.2144, 1.4348, 3.8899, 2.3304, 2.3066, 2.6675, 3.569, 3.4687, 4.1659, 2.6226, 3.1679, 2.3717, 3.3037, 4.4307, 3.4005, 2.525, 3.0077, 2.791, 4.9467, 2.6968, 3.6065, 2.0135, 4.4647, 2.1206, 1.9042, 3.9622, 2.2406, 3.7145, 2.6143, 2.7025, 2.7191, 4.4254, 3.6573, 4.3126, 2.1808, 4.7646, 3.0689, 3.0618, 2.4693, 3.017, 1.9217, 5.6671], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': 'us', 'update_time': '2024-08-02 15:28:42'}}, 'singleQubit': {'gate error': {'param_list': [0.18, 0.23, 0.11, 0.19, 0.14, 0.21, 0.16, 0.17, 0.1, 0.11, 0.13, 0.22, 0.14, 0.12, 0.25, 0.17, 0.43, 0.22, 0.22, 0.11, 0.15, 0.16, 0.17, 0.36, 0.12, 2.07, 0.11, 0.12, 0.15, 0.15, 0.15, 0.12, 0.12, 0.55, 0.55, 0.43, 0.14, 0.29, 0.15, 0.15, 0.22, 0.36, 0.15, 0.18, 0.1, 0.15, 0.13, 0.13, 0.1, 0.15, 0.11, 0.35, 0.1, 0.16, 0.11, 0.25, 0.1, 0.45, 0.22, 25.8, 0.14, 0.26, 0.1], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '%', 'update_time': '2024-08-07 06:52:39'}, 'X/2 amplitude': {'param_list': [0.2843, 0.1516, 0.1162, 0.3667, 0.1932, 0.3206, 0.2995, 0.2799, 0.1236, 0.2737, 0.1642, 0.2303, 0.2602, 0.2674, 0.2599, 0.1679, 0.259, 0.3028, 0.2076, 0.3307, 0.2425, 0.3832, 0.2509, 0.2333, 0.2652, 0.3073, 0.2495, 0.3561, 0.2052, 0.2842, 0.4796, 0.2051, 0.2385, 0.2281, 0.3228, 0.1389, 0.2066, 0.1653, 0.3508, 0.1948, 0.3053, 0.1078, 0.305, 0.208, 0.2535, 0.316, 0.2561, 0.1966, 0.3037, 0.2433, 0.1549, 0.307, 0.1953, 0.1359, 0.1125, 0.2494, 0.2251, 0.1185, 0.2481, 0.2985, 0.2485, 0.172, 0.1773], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-07 06:41:16'}, 'X/2 length': {'param_list': [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-02 15:28:38'}}}\n",
      "readout {'readoutArray': {'Readout Error': {'param_list': [5.86, 5.58, 7.91, 7.25, 6.31, 4.5, 7.03, 8.04, 4.02, 8.33, 10.52, 5.59, 7.5, 6.3, 4.0, 8.05, 5.34, 4.76, 4.05, 2.02, 5.74, 4.06, 9.38, 4.63, 4.89, 8.3, 3.44, 1.92, 4.48, 3.48, 5.49, 4.96, 4.01, 4.97, 3.57, 3.74, 3.42, 9.45, 5.31, 4.97, 3.12, 7.73, 4.93, 2.38, 6.05, 9.9, 2.7, 3.37, 4.32, 3.73, 3.59, 4.09, 3.63, 4.23, 2.87, 10.34, 16.86, 5.47, 4.39, 21.05, 3.36, 6.97, 6.96], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '%', 'update_time': '2024-08-07 10:20:12'}, '|0> readout fidelity': {'param_list': [0.9937, 0.9913, 0.9651, 0.9731, 0.9859, 0.9916, 0.9783, 0.9735, 0.986, 0.957, 0.9421, 0.9862, 0.9481, 0.9781, 0.9879, 0.988, 0.9714, 0.9939, 0.9902, 0.985, 0.9911, 0.9898, 0.9798, 0.9913, 0.9841, 0.9881, 0.9893, 0.9927, 0.978, 0.9887, 0.987, 0.9787, 0.9842, 0.9813, 0.9934, 0.9928, 0.9883, 0.9756, 0.9637, 0.9892, 0.9925, 0.9704, 0.9713, 0.9883, 0.9548, 0.8856, 0.9922, 0.9885, 0.9881, 0.9829, 0.9823, 0.9669, 0.9765, 0.9793, 0.9919, 0.9031, 0.8332, 0.9697, 0.9674, 0.942, 0.9838, 0.9382, 0.9172], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-07 10:20:12'}, '|1> readout fidelity': {'param_list': [0.8891, 0.897, 0.8768, 0.8819, 0.888, 0.9184, 0.8812, 0.8656, 0.9336, 0.8764, 0.8474, 0.902, 0.9018, 0.896, 0.932, 0.8511, 0.9218, 0.9108, 0.9288, 0.9745, 0.8941, 0.929, 0.8325, 0.916, 0.9181, 0.846, 0.9419, 0.9689, 0.9325, 0.9417, 0.9033, 0.9221, 0.9357, 0.9193, 0.9351, 0.9323, 0.9433, 0.8354, 0.9301, 0.9114, 0.9452, 0.875, 0.9301, 0.9642, 0.9241, 0.9164, 0.9539, 0.944, 0.9255, 0.9425, 0.946, 0.9514, 0.951, 0.936, 0.9508, 0.8902, 0.8296, 0.9209, 0.9447, 0.637, 0.9489, 0.9224, 0.9436], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-07 10:20:12'}}}\n",
      "status 0\n",
      "twoQubitGate {'czGate': {'gate error': {'param_list': [1.24, 1.91, 1.16, 0.91, 1.03, 1.05, 1.35, 1.22, 0.99, 1.54, 1.06, 1.76, 1.6, 1.54, 0.87, 2.34, 1.1, 1.68, 2.26, 2.47, 3.54, 1.54, 1.35, 2.32, 4.78, 0.98, 1.72, 1.89, 2.45, 1.15, 1.2, 1.05, 1.34, 0.94, 1.75, 0.5, 2.06, 1.81, 1.73, 2.35, 1.77, 1.83, 0.85, 1.56, 1.72, 1.57, 1.56, 1.22, 1.9, 3.92, 3.64, 0.61, 2.75, 1.41, 1.44, 3.86, 1.67, 1.71, 4.12, 6.25, 1.11, 4.92, 1.76, 1.25, 1.73, 1.46, 1.38, 1.48, 2.03, 2.41, 1.09, 4.4, 2.2, 2.7, 2.69, 1.03, 2.87, 1.01, 3.93, 1.4, 2.94, 1.37, 2.0, 3.1, 1.35, 3.46], 'qubit_used': ['G0', 'G1', 'G2', 'G3', 'G4', 'G6', 'G7', 'G8', 'G9', 'G11', 'G12', 'G13', 'G14', 'G15', 'G16', 'G17', 'G18', 'G22', 'G23', 'G24', 'G26', 'G27', 'G33', 'G34', 'G35', 'G36', 'G37', 'G39', 'G41', 'G43', 'G44', 'G45', 'G46', 'G47', 'G48', 'G49', 'G50', 'G51', 'G52', 'G55', 'G56', 'G57', 'G58', 'G59', 'G60', 'G61', 'G62', 'G63', 'G66', 'G67', 'G68', 'G69', 'G70', 'G71', 'G72', 'G73', 'G74', 'G77', 'G78', 'G79', 'G80', 'G81', 'G82', 'G83', 'G84', 'G85', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G105', 'G106', 'G107', 'G108', 'G109'], 'unit': '%', 'update_time': '2024-08-07 09:19:49'}, 'coupling strength': {'param_list': [[-14863822326.1, 3949970777.3], [-17075102279.4, 4042139099.9], [-17072472238.5, 4093045002.9], [-22007890122.7, 4523144360.0], [-33348334307.4, 5120631209.8], [-21082758620.7, 4917241379.3], [-12974050263.0, 3729398012.9], [-16024956166.0, 4388836937.5], [-15924897720.6, 4344067796.6], [-17346580946.8, 4025832846.3], [-21167270602.0, 4667212156.6], [-13944827586.2, 5075862069.0], [-23646522501.5, 4429339567.5], [-35874108708.4, 4967270602.0], [-17090531852.7, 5557744009.4], [-45104324956.2, 5019812974.9], [-35756867329.0, 4753477498.5], [-28306078316.8, 5024956166.0], [-17881998831.1, 4283518410.3], [-18283635301.0, 4074985388.7], [-20348334307.4, 4299941554.6], [-31985330216.2, 4980187025.1], [-18084511981.3, 4267212156.6], [-15493161893.6, 3962010520.2], [-28950087668.0, 4594739918.2], [-18880245470.5, 4264582115.7], [-42919871420.2, 5445645821.2], [-40569783752.2, 4768147282.3], [-25770660432.5, 5746580946.8], [-27394739918.2, 5715604909.4], [-22584570426.7, 4360257159.6], [-34543191116.3, 5118877849.2], [-39081122150.8, 4843015780.2], [-21184570426.7, 4187843366.5], [-27838866160.1, 4492168322.6], [-25098305084.7, 4460315604.9], [-12505961426.1, 3921624780.8], [-12505961426.1, 3859555815.3], [-13653419053.2, 3822443015.8], [-27175920514.3, 4630976037.4], [-29656925774.4, 5067212156.6], [-53419053185.3, 5532670952.7], [-22150087668.0, 4277498538.9], [-26064699006.4, 4487025131.5], [-18634482758.6, 5620689655.2], [-31390473407.4, 5954354178.8], [-18500818235.0, 5333664523.7], [-27881881940.4, 5745704266.5], [-23134541204.0, 4396493278.8], [-16543191116.3, 4187843366.5], [-20283752191.7, 4330040911.7], [-20800993571.0, 4281765049.7], [-21617299824.7, 4396493278.8], [-23196610169.5, 4637872589.1], [-18538807714.8, 4578433664.5], [-15650789012.3, 4031969608.4], [-15341320865.0, 4051782583.3], [-14332787843.4, 5074108708.4], [-20213793103.4, 4234482758.6], [-30351841028.6, 4689538281.7], [-19492285213.3, 4376680303.9], [-27981063705.4, 4549970777.3], [-28499181765.0, 4459438924.6], [-50315488018.7, 5105201636.5], [-20534424313.3, 5962127410.9], [-59055172413.8, 5165517241.4], [-23196610169.5, 4396493278.8], [-21767387492.7, 4232612507.3], [-21181063705.4, 4543074225.6], [-34907831677.4, 5168030391.6], [-20133664523.7, 4204266510.8], [-14656925774.4, 3853419053.2], [-10639625949.7, 3677615429.6], [-15377556984.2, 3967270602.0], [-14767270602.0, 3770660432.5], [-11701694915.3, 3677615429.6], [-13427586206.9, 3903448275.9], [-19010403272.9, 4168907071.9], [-18360374050.3, 4315488018.7], [-17588836937.5, 4218059614.3], [-22762127410.9, 4617182934.0], [-59081881940.4, 5359497370.0], [-17537054354.2, 5428462887.2], [-44520631209.8, 5024196376.4], [-33274108708.4, 4815546464.1], [-20659438924.6, 5526767971.9]], 'qubit_used': ['G0', 'G1', 'G2', 'G3', 'G4', 'G6', 'G7', 'G8', 'G9', 'G11', 'G12', 'G13', 'G14', 'G15', 'G16', 'G17', 'G18', 'G22', 'G23', 'G24', 'G26', 'G27', 'G33', 'G34', 'G35', 'G36', 'G37', 'G39', 'G41', 'G43', 'G44', 'G45', 'G46', 'G47', 'G48', 'G49', 'G50', 'G51', 'G52', 'G55', 'G56', 'G57', 'G58', 'G59', 'G60', 'G61', 'G62', 'G63', 'G66', 'G67', 'G68', 'G69', 'G70', 'G71', 'G72', 'G73', 'G74', 'G77', 'G78', 'G79', 'G80', 'G81', 'G82', 'G83', 'G84', 'G85', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G105', 'G106', 'G107', 'G108', 'G109'], 'unit': 'Hz', 'update_time': '2024-08-02 15:28:38'}}}\n"
     ]
    }
   ],
   "execution_count": 17
  },
  {
   "cell_type": "markdown",
   "id": "022034cb",
   "metadata": {},
   "source": "## 5. 其他功能"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "### 5.1 QCIS和QASM指令相互转换",
   "id": "9b7021a4bd02674f"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "下面介绍关于`cqlib.util`模块中关于指令集相互转换的功能。\n",
    "\n",
    "QCIS 指令和 QASM 指令都是用来进行量子电路编程的指令集。详细信息请点击下面的链接查看。\n",
    "\n",
    "[QCIS](https://docs.quantumcomputer.ac.cn/Appendix/C/)\n",
    "\n",
    "[QASM](https://openqasm.com/intro.html)\n",
    "\n",
    "Cqlib 中定义了函数可以实现指令集命令的相互转换。"
   ],
   "id": "bd5ac6a2c058bbed"
  },
  {
   "cell_type": "code",
   "id": "7bed60b8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:57:09.368585Z",
     "start_time": "2024-08-09T06:57:09.021668Z"
    }
   },
   "source": [
    "# 从QCIS电路转换为QASM\n",
    "from cqlib.utils import QcisToQasm\n",
    "\n",
    "qasm_str = QcisToQasm.convert_qcis_to_qasm(circuit.qcis)\n",
    "print(f'转换后的QASM指令为: {qasm_str}')\n",
    "\n",
    "# 将QASM转换为QCIS\n",
    "from cqlib.utils import QasmToQcis\n",
    "qcis_str = QasmToQcis().convert_to_qcis(qasm_str)\n",
    "print(f'转换后的QCIS指令为: {qcis_str}') "
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "转换后的QASM指令为: OPENQASM 2.0;\n",
      "include \"qelib1.inc\";\n",
      "qreg q[7];\n",
      "creg c[7];\n",
      "h q[0];\n",
      "x q[6];\n",
      "h q[6];\n",
      "cz q[0],q[6];\n",
      "h q[6];\n",
      "measure q[0] -> c[0];\n",
      "measure q[6] -> c[1];\n",
      "\n",
      "转换后的QCIS指令为: Y2M Q0\n",
      "RZ Q0 3.141593\n",
      "X2P Q6\n",
      "X2P Q6\n",
      "RZ Q6 3.141593\n",
      "Y2P Q6\n",
      "CZ Q0 Q6\n",
      "Y2M Q6\n",
      "RZ Q6 3.141593\n",
      "M Q0\n",
      "M Q6\n"
     ]
    }
   ],
   "execution_count": 18
  },
  {
   "cell_type": "markdown",
   "id": "41d96ff7",
   "metadata": {},
   "source": "### 5.2 QCIS指令化简"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "Cqlib 同时支持对QCIS指令进行简化，简化后的指令会以 QCIS 指令的形式返回。\n",
    "下面的例子中会将3个 QCIS 指令简化为2个 QCIS 指令。"
   ],
   "id": "3e74e7c64d24a06e"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:57:09.399908Z",
     "start_time": "2024-08-09T06:57:09.368585Z"
    }
   },
   "cell_type": "code",
   "source": [
    "from cqlib.utils import QCIS_Simplify\n",
    "\n",
    "qcis = \"\"\"\n",
    "Y2M Q1\n",
    "X2P Q1\n",
    "X2P Q1\n",
    "\"\"\"\n",
    "new_qcis = QCIS_Simplify().simplify(qcis)\n",
    "\n",
    "origin_line = qcis.count('\\n') - 1 \n",
    "new_line = new_qcis.count('\\n') - 1\n",
    "print(f\"化简前电路行数为: {origin_line}\")\n",
    "print(f\"化简后电路行数为: {new_line}\")\n",
    "print(f\"\\n化简后电路为: {new_qcis}\")"
   ],
   "id": "8c5f3bfce349ca48",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "化简前电路行数为: 3\n",
      "化简后电路行数为: 2\n",
      "\n",
      "化简后电路为: \n",
      "Y2P Q1\n",
      "RZ Q1 3.141592653589793\n",
      "\n"
     ]
    }
   ],
   "execution_count": 19
  },
  {
   "cell_type": "markdown",
   "id": "7426d0a1",
   "metadata": {},
   "source": "### 5.3 虚拟线路映射"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "SDK 提供了基于Monte Carlo Tree Search (MCTS) 的虚拟线路映射算法，可以基于选择的量子计算机的拓扑图和输入的虚拟量子线路，输出映射到真实物理机拓扑结构的线路。",
   "id": "5c2ecebd32f28b56"
  },
  {
   "cell_type": "code",
   "id": "708ecbf5",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-08-09T06:59:35.031446Z",
     "start_time": "2024-08-09T06:59:34.659398Z"
    }
   },
   "source": [
    "from cqlib.mapping import transpile_qcis\n",
    "from cqlib.circuits import Circuit, Parameter\n",
    "\n",
    "c2 = Circuit(qubits=[0, 1])\n",
    "c2.rz(0, 0.0)\n",
    "c2.x2p(1)\n",
    "c2.y2p(0)\n",
    "c2.rz(1, 0.9272952180016122)\n",
    "c2.rz(0, 3.1415910000000005)\n",
    "c2.x2m(1)\n",
    "c2.rz(1, 0.0)\n",
    "\n",
    "c2.y2m(1)\n",
    "c2.cz(0, 1)\n",
    "c2.y2p(1)\n",
    "c2.rz(1, 0.0)\n",
    "c2.x2p(1)\n",
    "c2.rz(1, -0.9272952180016122)\n",
    "c2.x2m(1)\n",
    "\n",
    "c2.rz(1, 0.0)\n",
    "c2.y2m(1)\n",
    "c2.cz(0, 1)\n",
    "c2.y2p(1)\n",
    "c2.y2m(0)\n",
    "c2.rz(1, 0.0)\n",
    "c2.rz(0, -3.1415910000000005)\n",
    "c2.x2p(1)\n",
    "\n",
    "c2.rz(1, 0.9272952180016122)\n",
    "c2.x2m(1)\n",
    "c2.rz(1, 0.0)\n",
    "c2.measure(0)\n",
    "c2.measure(1)\n",
    "\n",
    "qcis_virtual_circuit = c2.qcis\n",
    "\n",
    "# 检查 qcis电路映射后是否有效\n",
    "before_mapping_check_res = platform.qcis_check_regular(qcis_virtual_circuit)\n",
    "print(f'映射前，有效检查的结果： {before_mapping_check_res}')\n",
    "# 建立虚拟电路与真实电路的映射\n",
    "circuit, initial_layout, swap_mapping, mapping_virtual_to_final = transpile_qcis(qcis_virtual_circuit, platform)\n",
    "qcis_after_mapping = circuit.qcis.upper()\n",
    "print(f'qcis 映射后的结果：{qcis_after_mapping}')\n",
    "# 检查 qcis电路映射后是否有效\n",
    "after_mapping_check_res = platform.qcis_check_regular(qcis_after_mapping)\n",
    "print(f'映射后，有效检查的结果： {after_mapping_check_res}')"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "映射前，有效检查的结果： False\n",
      "qcis 映射后的结果：X2P Q6\n",
      "RZ Q0 0.0\n",
      "RZ Q6 0.9272952180016122\n",
      "Y2P Q0\n",
      "X2M Q6\n",
      "RZ Q0 3.1415910000000005\n",
      "RZ Q6 0.0\n",
      "Y2M Q6\n",
      "CZ Q0 Q6\n",
      "Y2P Q6\n",
      "RZ Q6 0.0\n",
      "X2P Q6\n",
      "RZ Q6 -0.9272952180016122\n",
      "X2M Q6\n",
      "RZ Q6 0.0\n",
      "Y2M Q6\n",
      "CZ Q0 Q6\n",
      "Y2P Q6\n",
      "Y2M Q0\n",
      "RZ Q6 0.0\n",
      "RZ Q0 -3.1415910000000005\n",
      "X2P Q6\n",
      "RZ Q6 0.9272952180016122\n",
      "X2M Q6\n",
      "RZ Q6 0.0\n",
      "M Q0\n",
      "M Q6\n",
      "映射后，有效检查的结果： True\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<class 'networkx.utils.decorators.argmap'> compilation 26:3: FutureWarning: \n",
      "\n",
      "shortest_path will return an iterator that yields\n",
      "(node, path) pairs instead of a dictionary when source\n",
      "and target are unspecified beginning in version 3.5\n",
      "\n",
      "To keep the current behavior, use:\n",
      "\n",
      "\tdict(nx.shortest_path(G))\n"
     ]
    }
   ],
   "execution_count": 21
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
